1. Field of the Invention
The present invention relates to communication networks, and more specifically to a method and apparatus for providing different quality of services (QOS) to layer-3 (e.g., Internet Protocol) datagrams when transported on tunnels.
2. Related Art
Tunnels are often provided between a pair of network devices at the edge of excommunication networks. In general, tunnels enable the number of virtual circuits to be minimized between the two network devices, thereby minimizing the overhead (e.g., routing table entries, buffers, etc.) on the two network devices and any other network devices in the path of the tunnel. In addition, in case of at least Internet Protocol based communication networks, some of the devices can be assigned non-unique global (i.e., private) IP addresses, and yet enable communication with many systems using the communication network, as is well known in the relevant arts.
Once provided, a tunnel enables datagrams to be transported from one edge of a communication network to the other by encapsulating the datagrams according to a tunneling protocol. L2TP and L2F are two common tunneling protocols well known in the relevant arts. L2TP is described in a document entitled Request for Comment 2661 (RFC 2661) available from www.ietf.org, and the document is incorporated into the present application in its entirety.
A network device receives layer-3 (e.g., Internet Protocol) datagrams from an end system, and sends the data in the datagrams to a peer network device on the other end of a tunnel. The peer network device then sends the data to another end system, and the data transfer may be used to implement network applications between the two end systems.
Network applications often require different services (e.g., latency, bandwidth, reliability of transport, etc.). For example, a real time application (e.g., video-conferencing) may need low latency transport while a batch application (e.g., file transfer) may need large bandwidth even if the latency is high.
In addition, datagrams within an application may require different types of services. For example, an application may be supported by a control flow and it may be desirable to provide reliable and quick transport to the related datagrams. The different services (either desired or provided) while transporting the data are generally referred to as quality of services (QOS).
The QOS desired for each datagram may be specified within the header portion of the datagram. For example, in the case of Internet Protocol (IP), the desired QOS for a datagram are specified by the precedence/type of service (TOS) bits as described in RFC 791, which is incorporated in its entirety into the present application herewith.
It may be desirable to provide the desired QOS to datagrams even when transported on tunnels. For example, a service provider providing a communication network may wish to provide differentiated services on a per-datagram basis and charge the end users (using end systems) according to the desired or offered QOS. The datagrams may be transported on tunnels, for example, to minimize the resource overhead on the network devices in the communication network.
Therefore, what is needed is a method and apparatus which enables different desired QOS to be provided to different datagrams when transported on tunnels.